﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
//class stack//类型名
//{
//	//类的成员
//	// 
//	//函数称为类的⽅法或 者成员函数
//	void add()
//	{
//		//.......
//	}
//	//类的属性或成员变量
//	int a = 10;
//	int b = 0;
//};//后⾯分号不能省略
////第二种，可以把声明留在类里，定义放在外面或别的文件
/////比如类的声明在.h文件，定义在.c文件
////.h文件
//class stack//类型名
//{
//	//类的成员
//	// 
//	//函数称为类的⽅法或 者成员函数
//public:
//	void add();
//	//类的属性或成员变量
//	int a = 10;
//	int b = 0;
//};//后⾯分号不能省略
////.c文件
//void stack::add()
//{
//	//........
//}
//class stack
//{
//public:
//	int a = 10;
//	int b = 3;
//private:
//	void add()
//	{
//		//.....
//	}
//protected:
//	int c = a + b;//public在类内可以直接访问
//	//add();//private不可以直接访问
//};
//class stack
//{
//public:
//	void STinit(int n=4);
//private:
//	int val;
//	int top = 0;
//	int capacity = 4;
//};
//void stack::STinit(int n = 4)
//{
//	int* tmp = (int*)malloc(sizeof(int) * n);
//	if (tmp == NULL)
//	{
//		perror("malloc fail!");
//	}
//}
//int main()
//{
//	stack st1;
//	stack st2;
//	st1.STinit();
//	st2.STinit();
//}
#include<iostream>
using namespace std;
class Date
{
public:
	// void Init(Date* const this, int year, int month, int day)
	void Init(int year, int month, int day)
	{
		// 编译报错：error C2106: “=”: 左操作数必须为左值
		// this = nullptr;
		// this->_year = year;
		this->_year = year;
		this->_month = month;
		this->_day = day;
	}
	void Print()
	{
	cout << _year << "/" << _month << "/" << _day << endl;
	}
private:
	// 这⾥只是声明，没有开空间
	int _year;
	int _month;
	int _day;
};
int main()
{
	// Date类实例化出对象d1和d2
	Date d1;
	Date d2;
	// d1.Init(&d1, 2024, 3, 31);
	d1.Init(2024, 3, 31);
	d1.Print();
	d2.Init(2024, 7, 5);
	d2.Print();
	
	return 0;
}
